package com.templatemethod.core;

public abstract class AbstractClass {
	/*
	 * 模板方法
	 */
	public void TemplateMethod() {
		// 调用基本方法(子类实现)
		doOperation1();
		// 调用基本方法(子类实现)
		doOperation2();
		// 调用基本方法(已经实现)
		doOperation3();
	}

	/*
	 * 基本方法(子类实现)
	 */
	protected abstract void doOperation1();

	/*
	 * 基本方法(子类实现)
	 */
	protected abstract void doOperation2();

	/*
	 * 基本方法(已经实现)
	 */
	private final void doOperation3() {
		System.out.println("抽象类已经实现的基本方法");
	}
}
